// .vuepress/config.js

import { defaultTheme } from '@vuepress/theme-default'
import { defineUserConfig } from 'vuepress'
import { webpackBundler } from '@vuepress/bundler-webpack'

// 2. 引入阅读时间插件
import { readingTimePlugin } from '@renovamen/vuepress-plugin-reading-time'
import { backToTopPlugin } from '@vuepress/plugin-back-to-top'
// 3. 引入 latex 插件
import { katex } from '@mdit/plugin-katex'

export default defineUserConfig({
    lang: 'en-US',
    title: 'waitsunshine知识库',
    base: '/',
    description: '深入探索计算机科学的世界',
    theme: defaultTheme({
        logo: 'https://vuejs.press/images/hero.png',
        readingTime: {
            wordsPerMinuteCN: 500,  // 一分钟可以阅读多少个中文字符（可选，默认：300）
            wordsPerMinuteEN: 200,  // 一分钟可以阅读多少个英文字符（可选，默认：160）
            excludeCodeBlock: true,  // 是否排除所有代码块内的字符（可选，默认：false）
            excludeTexBlock: true    // 是否排除所有公式块内的字符（可选，默认：false）
        },
        navbar: [
            // ... 你的 navbar 配置保持不变 ...
            { text: '首页', link: '/' },
            { text: '快速开始', link: '/get-started' },
            {
                text: '计算机基础知识',
                children: [
                    { text: '数据结构', link: '/data-structure/readme.md', activeMatch: '^/data-structure/' },
                    { text: '计算机组成原理', link: '/computer-principle/', activeMatch: '^/computer-principle/' },
                    { text: '操作系统', link: '/operating-system/', activeMatch: '^/operating-system/' },
                    { text: '计算机网络', link: '/network/', activeMatch: '^/network/' },
                ]
            },
            {
                text: '编程语言',
                children: [
                    { text: 'Go', link: '/go/', activeMatch: '^/go/' },
                    { text: 'Python', link: '/python/', activeMatch: '^/python/' },
                    {
                        text: '前端技术',
                        children: [
                            { text: 'Vue.js', link: '/vue/' },
                            { text: 'React', link: '/react/' },
                            { text: 'JavaScript', link: '/javascript/' },
                        ]
                    }
                ]
            },
            {
                text: '更多资源',
                children: [
                    { text: 'GitHub', link: 'https://github.com' },
                    { text: '文档', link: '/docs/' },
                    { text: '博客', link: '/blog/' },
                ]
            }
        ],

        // 侧边栏配置，用于控制左侧导航
        sidebar: {
            '/data-structure/': [
                {
                    text: '数据结构',
                    children: [
                        '/data-structure/readme.md',
                        '/data-structure/01_复杂度.md',
                    ],
                },
            ],
            '/go/': [
                {
                    text: 'Go 语言',
                    children: [
                        '/go/README.md',
                        '/go/basic-syntax.md',
                        '/go/concurrency.md',
                    ],
                },
            ],
        },
        // 侧边栏深度，用于控制左侧导航的展开层级
        sidebarDepth: 2,
    }),

    // 2. 添加插件配置
    plugins: [
        readingTimePlugin({
            wordsPerMinuteCN: 500, // 一分钟可以阅读多少个中文字符
            wordsPerMinuteEN: 160, // 一分钟可以阅读多少个英文字符
            excludeCodeBlock: true, // 是否排除所有代码块内的字符
            excludeTexBlock: true, // 是否排除所有公式块内的字符
        }),
        // 回到顶部
        backToTopPlugin({
            threshold: 200 // 滚动高度达到多少时显示回到顶部按钮
        }),
    ],
    // 3. 配置 markdown-it 的插件
    extendsMarkdown: (md) => {
        md.use(katex)
        md.linkify.set({ fuzzyLink: false })
    },

    bundler: webpackBundler({
        publicPath: './',
    }),
})
